<?php
//创建Server对象，监听 127.0.0.1:9501端口
$serv = new swoole_server("127.0.0.1", 9501);

$tick_id = 0;

$serv->set([
//    'daemonize' => 1, // 守护进程
//    'reactor_num' => 4, // reactor线程数
    'worker_num' => 4, // worker进程数 1-4
//    'backlog' => 128,  // listen backlog
//    'max_request' => 50, // 此参数表示worker进程在处理完n次请求后结束运行。manager会重新创建一个worker进程。此选项用来防止worker进程内存溢出。
//    'dispatch_mode' => 1, // worker进程数据包分配模式(1平均分配，2按FD取模固定分配，3抢占式分配，默认为取模(dispatch=2))
]);

/**
 * 监听连接进入事件
 * $fd 客户端连接的唯一标识
 * $reactor_id 线程id
 */
$serv->on('connect', function ($serv, $fd, $reactor_id) {
    echo "客户端连接成功. 线程ID-$reactor_id 客户端标识-$fd\n";
    $serv->send($fd, "欢迎进入swoole的怀抱!!!");


//    //每隔2000ms触发一次
//    $tick_id = swoole_timer_tick(2000, function ($timer_id) {
//        echo "tick-2000ms\n";
//    });
});

//监听数据接收事件
$serv->on('receive', function ($serv, $fd, $from_id, $data) {
    $serv->send($fd, "Server: " . $data);
});

//监听连接关闭事件
$serv->on('close', function ($serv, $fd) {
    echo "Client: Close.\n";
});

//启动服务器
$serv->start();